<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>async函数</title>
</head>
<body>
    
    <script>

        /**
         *   MDN文档
         *   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/async_function
         *   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/await 
         *   
         *   async 函数
         *   1. 函数的返回值为 promise 对象
         *   2. promise 对象的结果由 async 函数执行的返回值决定
         */

         async function main(){
            
            //1.如果返回值是一个非Promise类型的数据
            //那么返回的PromiseState:"fulfilled",PromiseResult:为你return的值;
            //如果函数没有return,则PromiseResult:'undefined'
            //return 521;

            //2.如果返回的是一个Promise对象,状态和结果取决于你返回的Promise对象
            // return new Promise((resolve,reject)=>{
            //     //resolve('OK');
            //     reject('Err');
            // });

            //3.如果是抛出异常,返回失败的Promise对象,结果就是抛出的异常字符串
            throw 'Oh No'; 

         }

         let result=main();
         console.log(result); //函数的返回值为promise对象,

    </script>

</body>
</html>